/**
 */
package gatperdut.chato.model.Chato.Entity.impl;

import gatperdut.chato.model.Chato.Constant.Gender;
import gatperdut.chato.model.Chato.Constant.Language;
import gatperdut.chato.model.Chato.Entity.Entity;
import gatperdut.chato.model.Chato.Entity.EntityPackage;
import gatperdut.chato.model.Chato.Entity.Health;
import gatperdut.chato.model.Chato.Entity.Scores;
import gatperdut.chato.model.Chato.Entity.Settings;
import gatperdut.chato.model.Chato.Entity.Skill.SkillsContainer;
import gatperdut.chato.model.Chato.Item.EntityInventory;
import gatperdut.chato.model.Chato.Room.Room;
import java.util.Collection;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.internal.cdo.CDOObjectImpl;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Entity</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * <ul>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.impl.EntityImpl#getName <em>Name</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.impl.EntityImpl#getShortDesc <em>Short Desc</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.impl.EntityImpl#getLongDesc <em>Long Desc</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.impl.EntityImpl#getFullDesc <em>Full Desc</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.impl.EntityImpl#getKeywords <em>Keywords</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.impl.EntityImpl#getRoom <em>Room</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.impl.EntityImpl#getGender <em>Gender</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.impl.EntityImpl#getCurrentLanguage <em>Current Language</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.impl.EntityImpl#getKnownLanguages <em>Known Languages</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.impl.EntityImpl#getInventory <em>Inventory</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.impl.EntityImpl#getScores <em>Scores</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.impl.EntityImpl#getSettings <em>Settings</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.impl.EntityImpl#getSkillsContainer <em>Skills Container</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.impl.EntityImpl#getArmorClass <em>Armor Class</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.impl.EntityImpl#getAttackBonus <em>Attack Bonus</em>}</li>
 *   <li>{@link gatperdut.chato.model.Chato.Entity.impl.EntityImpl#getHealth <em>Health</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public class EntityImpl extends CDOObjectImpl implements Entity {
	/**
     * The default value of the '{@link #getName() <em>Name</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @see #getName()
     * @generated
     * @ordered
     */
	protected static final String NAME_EDEFAULT = null;

	/**
     * The default value of the '{@link #getShortDesc() <em>Short Desc</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @see #getShortDesc()
     * @generated
     * @ordered
     */
	protected static final String SHORT_DESC_EDEFAULT = null;

	/**
     * The default value of the '{@link #getLongDesc() <em>Long Desc</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @see #getLongDesc()
     * @generated
     * @ordered
     */
	protected static final String LONG_DESC_EDEFAULT = null;

	/**
     * The default value of the '{@link #getFullDesc() <em>Full Desc</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @see #getFullDesc()
     * @generated
     * @ordered
     */
	protected static final String FULL_DESC_EDEFAULT = null;

	/**
     * The default value of the '{@link #getGender() <em>Gender</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @see #getGender()
     * @generated
     * @ordered
     */
	protected static final Gender GENDER_EDEFAULT = Gender.MALE;

	/**
     * The default value of the '{@link #getCurrentLanguage() <em>Current Language</em>}' attribute.
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @see #getCurrentLanguage()
     * @generated
     * @ordered
     */
	protected static final Language CURRENT_LANGUAGE_EDEFAULT = Language.WESTRON;

	/**
     * The default value of the '{@link #getArmorClass() <em>Armor Class</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see #getArmorClass()
     * @generated
     * @ordered
     */
    protected static final int ARMOR_CLASS_EDEFAULT = 0;

    /**
     * The default value of the '{@link #getAttackBonus() <em>Attack Bonus</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see #getAttackBonus()
     * @generated
     * @ordered
     */
    protected static final int ATTACK_BONUS_EDEFAULT = 0;

    /**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	protected EntityImpl() {
        super();
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	@Override
	protected EClass eStaticClass() {
        return EntityPackage.Literals.ENTITY;
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	@Override
	protected int eStaticFeatureCount() {
        return 0;
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public String getName() {
        return (String)eDynamicGet(EntityPackage.ENTITY__NAME, EntityPackage.Literals.ENTITY__NAME, true, true);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public void setName(String newName) {
        eDynamicSet(EntityPackage.ENTITY__NAME, EntityPackage.Literals.ENTITY__NAME, newName);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public String getShortDesc() {
        return (String)eDynamicGet(EntityPackage.ENTITY__SHORT_DESC, EntityPackage.Literals.ENTITY__SHORT_DESC, true, true);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public void setShortDesc(String newShortDesc) {
        eDynamicSet(EntityPackage.ENTITY__SHORT_DESC, EntityPackage.Literals.ENTITY__SHORT_DESC, newShortDesc);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public String getLongDesc() {
        return (String)eDynamicGet(EntityPackage.ENTITY__LONG_DESC, EntityPackage.Literals.ENTITY__LONG_DESC, true, true);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public void setLongDesc(String newLongDesc) {
        eDynamicSet(EntityPackage.ENTITY__LONG_DESC, EntityPackage.Literals.ENTITY__LONG_DESC, newLongDesc);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public String getFullDesc() {
        return (String)eDynamicGet(EntityPackage.ENTITY__FULL_DESC, EntityPackage.Literals.ENTITY__FULL_DESC, true, true);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public void setFullDesc(String newFullDesc) {
        eDynamicSet(EntityPackage.ENTITY__FULL_DESC, EntityPackage.Literals.ENTITY__FULL_DESC, newFullDesc);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	@SuppressWarnings("unchecked")
	public EList<String> getKeywords() {
        return (EList<String>)eDynamicGet(EntityPackage.ENTITY__KEYWORDS, EntityPackage.Literals.ENTITY__KEYWORDS, true, true);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public Room getRoom() {
        return (Room)eDynamicGet(EntityPackage.ENTITY__ROOM, EntityPackage.Literals.ENTITY__ROOM, true, true);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public Room basicGetRoom() {
        return (Room)eDynamicGet(EntityPackage.ENTITY__ROOM, EntityPackage.Literals.ENTITY__ROOM, false, true);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public void setRoom(Room newRoom) {
        eDynamicSet(EntityPackage.ENTITY__ROOM, EntityPackage.Literals.ENTITY__ROOM, newRoom);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public Gender getGender() {
        return (Gender)eDynamicGet(EntityPackage.ENTITY__GENDER, EntityPackage.Literals.ENTITY__GENDER, true, true);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public void setGender(Gender newGender) {
        eDynamicSet(EntityPackage.ENTITY__GENDER, EntityPackage.Literals.ENTITY__GENDER, newGender);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public Language getCurrentLanguage() {
        return (Language)eDynamicGet(EntityPackage.ENTITY__CURRENT_LANGUAGE, EntityPackage.Literals.ENTITY__CURRENT_LANGUAGE, true, true);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public void setCurrentLanguage(Language newCurrentLanguage) {
        eDynamicSet(EntityPackage.ENTITY__CURRENT_LANGUAGE, EntityPackage.Literals.ENTITY__CURRENT_LANGUAGE, newCurrentLanguage);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	@SuppressWarnings("unchecked")
	public EList<Language> getKnownLanguages() {
        return (EList<Language>)eDynamicGet(EntityPackage.ENTITY__KNOWN_LANGUAGES, EntityPackage.Literals.ENTITY__KNOWN_LANGUAGES, true, true);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public EntityInventory getInventory() {
        return (EntityInventory)eDynamicGet(EntityPackage.ENTITY__INVENTORY, EntityPackage.Literals.ENTITY__INVENTORY, true, true);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public NotificationChain basicSetInventory(EntityInventory newInventory, NotificationChain msgs) {
        msgs = eDynamicInverseAdd((InternalEObject)newInventory, EntityPackage.ENTITY__INVENTORY, msgs);
        return msgs;
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public void setInventory(EntityInventory newInventory) {
        eDynamicSet(EntityPackage.ENTITY__INVENTORY, EntityPackage.Literals.ENTITY__INVENTORY, newInventory);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public Scores getScores() {
        return (Scores)eDynamicGet(EntityPackage.ENTITY__SCORES, EntityPackage.Literals.ENTITY__SCORES, true, true);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public NotificationChain basicSetScores(Scores newScores, NotificationChain msgs) {
        msgs = eDynamicInverseAdd((InternalEObject)newScores, EntityPackage.ENTITY__SCORES, msgs);
        return msgs;
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	public void setScores(Scores newScores) {
        eDynamicSet(EntityPackage.ENTITY__SCORES, EntityPackage.Literals.ENTITY__SCORES, newScores);
    }

	/**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public Settings getSettings() {
        return (Settings)eDynamicGet(EntityPackage.ENTITY__SETTINGS, EntityPackage.Literals.ENTITY__SETTINGS, true, true);
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public NotificationChain basicSetSettings(Settings newSettings, NotificationChain msgs) {
        msgs = eDynamicInverseAdd((InternalEObject)newSettings, EntityPackage.ENTITY__SETTINGS, msgs);
        return msgs;
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public void setSettings(Settings newSettings) {
        eDynamicSet(EntityPackage.ENTITY__SETTINGS, EntityPackage.Literals.ENTITY__SETTINGS, newSettings);
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public SkillsContainer getSkillsContainer() {
        return (SkillsContainer)eDynamicGet(EntityPackage.ENTITY__SKILLS_CONTAINER, EntityPackage.Literals.ENTITY__SKILLS_CONTAINER, true, true);
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public NotificationChain basicSetSkillsContainer(SkillsContainer newSkillsContainer, NotificationChain msgs) {
        msgs = eDynamicInverseAdd((InternalEObject)newSkillsContainer, EntityPackage.ENTITY__SKILLS_CONTAINER, msgs);
        return msgs;
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public void setSkillsContainer(SkillsContainer newSkillsContainer) {
        eDynamicSet(EntityPackage.ENTITY__SKILLS_CONTAINER, EntityPackage.Literals.ENTITY__SKILLS_CONTAINER, newSkillsContainer);
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public int getArmorClass() {
        return (Integer)eDynamicGet(EntityPackage.ENTITY__ARMOR_CLASS, EntityPackage.Literals.ENTITY__ARMOR_CLASS, true, true);
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public void setArmorClass(int newArmorClass) {
        eDynamicSet(EntityPackage.ENTITY__ARMOR_CLASS, EntityPackage.Literals.ENTITY__ARMOR_CLASS, newArmorClass);
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public int getAttackBonus() {
        return (Integer)eDynamicGet(EntityPackage.ENTITY__ATTACK_BONUS, EntityPackage.Literals.ENTITY__ATTACK_BONUS, true, true);
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public void setAttackBonus(int newAttackBonus) {
        eDynamicSet(EntityPackage.ENTITY__ATTACK_BONUS, EntityPackage.Literals.ENTITY__ATTACK_BONUS, newAttackBonus);
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public Health getHealth() {
        return (Health)eDynamicGet(EntityPackage.ENTITY__HEALTH, EntityPackage.Literals.ENTITY__HEALTH, true, true);
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public NotificationChain basicSetHealth(Health newHealth, NotificationChain msgs) {
        msgs = eDynamicInverseAdd((InternalEObject)newHealth, EntityPackage.ENTITY__HEALTH, msgs);
        return msgs;
    }

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public void setHealth(Health newHealth) {
        eDynamicSet(EntityPackage.ENTITY__HEALTH, EntityPackage.Literals.ENTITY__HEALTH, newHealth);
    }

    /**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	@Override
	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
        switch (featureID) {
            case EntityPackage.ENTITY__INVENTORY:
                return basicSetInventory(null, msgs);
            case EntityPackage.ENTITY__SCORES:
                return basicSetScores(null, msgs);
            case EntityPackage.ENTITY__SETTINGS:
                return basicSetSettings(null, msgs);
            case EntityPackage.ENTITY__SKILLS_CONTAINER:
                return basicSetSkillsContainer(null, msgs);
            case EntityPackage.ENTITY__HEALTH:
                return basicSetHealth(null, msgs);
        }
        return super.eInverseRemove(otherEnd, featureID, msgs);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	@Override
	public Object eGet(int featureID, boolean resolve, boolean coreType) {
        switch (featureID) {
            case EntityPackage.ENTITY__NAME:
                return getName();
            case EntityPackage.ENTITY__SHORT_DESC:
                return getShortDesc();
            case EntityPackage.ENTITY__LONG_DESC:
                return getLongDesc();
            case EntityPackage.ENTITY__FULL_DESC:
                return getFullDesc();
            case EntityPackage.ENTITY__KEYWORDS:
                return getKeywords();
            case EntityPackage.ENTITY__ROOM:
                if (resolve) return getRoom();
                return basicGetRoom();
            case EntityPackage.ENTITY__GENDER:
                return getGender();
            case EntityPackage.ENTITY__CURRENT_LANGUAGE:
                return getCurrentLanguage();
            case EntityPackage.ENTITY__KNOWN_LANGUAGES:
                return getKnownLanguages();
            case EntityPackage.ENTITY__INVENTORY:
                return getInventory();
            case EntityPackage.ENTITY__SCORES:
                return getScores();
            case EntityPackage.ENTITY__SETTINGS:
                return getSettings();
            case EntityPackage.ENTITY__SKILLS_CONTAINER:
                return getSkillsContainer();
            case EntityPackage.ENTITY__ARMOR_CLASS:
                return getArmorClass();
            case EntityPackage.ENTITY__ATTACK_BONUS:
                return getAttackBonus();
            case EntityPackage.ENTITY__HEALTH:
                return getHealth();
        }
        return super.eGet(featureID, resolve, coreType);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	@SuppressWarnings("unchecked")
	@Override
	public void eSet(int featureID, Object newValue) {
        switch (featureID) {
            case EntityPackage.ENTITY__NAME:
                setName((String)newValue);
                return;
            case EntityPackage.ENTITY__SHORT_DESC:
                setShortDesc((String)newValue);
                return;
            case EntityPackage.ENTITY__LONG_DESC:
                setLongDesc((String)newValue);
                return;
            case EntityPackage.ENTITY__FULL_DESC:
                setFullDesc((String)newValue);
                return;
            case EntityPackage.ENTITY__KEYWORDS:
                getKeywords().clear();
                getKeywords().addAll((Collection<? extends String>)newValue);
                return;
            case EntityPackage.ENTITY__ROOM:
                setRoom((Room)newValue);
                return;
            case EntityPackage.ENTITY__GENDER:
                setGender((Gender)newValue);
                return;
            case EntityPackage.ENTITY__CURRENT_LANGUAGE:
                setCurrentLanguage((Language)newValue);
                return;
            case EntityPackage.ENTITY__KNOWN_LANGUAGES:
                getKnownLanguages().clear();
                getKnownLanguages().addAll((Collection<? extends Language>)newValue);
                return;
            case EntityPackage.ENTITY__INVENTORY:
                setInventory((EntityInventory)newValue);
                return;
            case EntityPackage.ENTITY__SCORES:
                setScores((Scores)newValue);
                return;
            case EntityPackage.ENTITY__SETTINGS:
                setSettings((Settings)newValue);
                return;
            case EntityPackage.ENTITY__SKILLS_CONTAINER:
                setSkillsContainer((SkillsContainer)newValue);
                return;
            case EntityPackage.ENTITY__ARMOR_CLASS:
                setArmorClass((Integer)newValue);
                return;
            case EntityPackage.ENTITY__ATTACK_BONUS:
                setAttackBonus((Integer)newValue);
                return;
            case EntityPackage.ENTITY__HEALTH:
                setHealth((Health)newValue);
                return;
        }
        super.eSet(featureID, newValue);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	@Override
	public void eUnset(int featureID) {
        switch (featureID) {
            case EntityPackage.ENTITY__NAME:
                setName(NAME_EDEFAULT);
                return;
            case EntityPackage.ENTITY__SHORT_DESC:
                setShortDesc(SHORT_DESC_EDEFAULT);
                return;
            case EntityPackage.ENTITY__LONG_DESC:
                setLongDesc(LONG_DESC_EDEFAULT);
                return;
            case EntityPackage.ENTITY__FULL_DESC:
                setFullDesc(FULL_DESC_EDEFAULT);
                return;
            case EntityPackage.ENTITY__KEYWORDS:
                getKeywords().clear();
                return;
            case EntityPackage.ENTITY__ROOM:
                setRoom((Room)null);
                return;
            case EntityPackage.ENTITY__GENDER:
                setGender(GENDER_EDEFAULT);
                return;
            case EntityPackage.ENTITY__CURRENT_LANGUAGE:
                setCurrentLanguage(CURRENT_LANGUAGE_EDEFAULT);
                return;
            case EntityPackage.ENTITY__KNOWN_LANGUAGES:
                getKnownLanguages().clear();
                return;
            case EntityPackage.ENTITY__INVENTORY:
                setInventory((EntityInventory)null);
                return;
            case EntityPackage.ENTITY__SCORES:
                setScores((Scores)null);
                return;
            case EntityPackage.ENTITY__SETTINGS:
                setSettings((Settings)null);
                return;
            case EntityPackage.ENTITY__SKILLS_CONTAINER:
                setSkillsContainer((SkillsContainer)null);
                return;
            case EntityPackage.ENTITY__ARMOR_CLASS:
                setArmorClass(ARMOR_CLASS_EDEFAULT);
                return;
            case EntityPackage.ENTITY__ATTACK_BONUS:
                setAttackBonus(ATTACK_BONUS_EDEFAULT);
                return;
            case EntityPackage.ENTITY__HEALTH:
                setHealth((Health)null);
                return;
        }
        super.eUnset(featureID);
    }

	/**
     * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
     * @generated
     */
	@Override
	public boolean eIsSet(int featureID) {
        switch (featureID) {
            case EntityPackage.ENTITY__NAME:
                return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
            case EntityPackage.ENTITY__SHORT_DESC:
                return SHORT_DESC_EDEFAULT == null ? getShortDesc() != null : !SHORT_DESC_EDEFAULT.equals(getShortDesc());
            case EntityPackage.ENTITY__LONG_DESC:
                return LONG_DESC_EDEFAULT == null ? getLongDesc() != null : !LONG_DESC_EDEFAULT.equals(getLongDesc());
            case EntityPackage.ENTITY__FULL_DESC:
                return FULL_DESC_EDEFAULT == null ? getFullDesc() != null : !FULL_DESC_EDEFAULT.equals(getFullDesc());
            case EntityPackage.ENTITY__KEYWORDS:
                return !getKeywords().isEmpty();
            case EntityPackage.ENTITY__ROOM:
                return basicGetRoom() != null;
            case EntityPackage.ENTITY__GENDER:
                return getGender() != GENDER_EDEFAULT;
            case EntityPackage.ENTITY__CURRENT_LANGUAGE:
                return getCurrentLanguage() != CURRENT_LANGUAGE_EDEFAULT;
            case EntityPackage.ENTITY__KNOWN_LANGUAGES:
                return !getKnownLanguages().isEmpty();
            case EntityPackage.ENTITY__INVENTORY:
                return getInventory() != null;
            case EntityPackage.ENTITY__SCORES:
                return getScores() != null;
            case EntityPackage.ENTITY__SETTINGS:
                return getSettings() != null;
            case EntityPackage.ENTITY__SKILLS_CONTAINER:
                return getSkillsContainer() != null;
            case EntityPackage.ENTITY__ARMOR_CLASS:
                return getArmorClass() != ARMOR_CLASS_EDEFAULT;
            case EntityPackage.ENTITY__ATTACK_BONUS:
                return getAttackBonus() != ATTACK_BONUS_EDEFAULT;
            case EntityPackage.ENTITY__HEALTH:
                return getHealth() != null;
        }
        return super.eIsSet(featureID);
    }

} //EntityImpl
